package com.wtb.javatool.service;

import com.wtb.javatool.entity.Dish;
import com.wtb.javatool.entity.Table;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface ITableService {

    /**
     * 列出所有桌位
     *
     * @return
     */
    List<Table> listAllTables();

    /**
     * 获取桌位预定信息
     *
     * @param tableId 桌位ID
     * @return
     */
    List<Object> getTableReservations(Long tableId);

    /**
     * 添加桌位预定
     *
     * @param tableId 桌位ID
     * @param dishId 菜品ID
     * @param quantity 数量
     * @return
     */
    boolean addTableReservation(Long tableId, Long dishId, Integer quantity);

    /**
     * 删除桌位预定
     *
     * @param reservationId 预定ID
     * @return
     */
    boolean deleteTableReservation(Long reservationId);

    /**
     * 更新桌位状态
     *
     * @param tableId 桌位ID
     * @param status 状态
     * @return
     */
    boolean updateTableStatus(Long tableId, Integer status);

    /**
     * 预定桌位
     *
     * @param tableId 桌位ID
     * @param customerName 客户姓名
     * @param customerPhone 客户电话
     * @return
     */
    boolean reserveTable(Long tableId, String customerName, String customerPhone);

    /**
     * 结束预定
     *
     * @param tableId 桌位ID
     * @return
     */
    boolean endReservation(Long tableId);

    /**
     * 执行预定
     *
     * @param tableId 桌位ID
     * @return
     */
    boolean executeReservation(Long tableId);

    /**
     * 更新预定状态
     *
     * @param reservationId 预定ID
     * @param status 状态
     * @return
     */
    boolean updateReservationStatus(Long reservationId, Integer status);
}
